﻿/// <reference path="../typings/jquery/jquery.d.ts" />
/// <reference path="../typings/windjs/windjs.d.ts" />


module Pagination
{

	export class Div
	{
		//Danh sách các event
		public onNext(param?: any): void { }
		public onPrev(param?: any): void { }
		public onNav(param?: any): void { }
		
		private prevBt: JQuery;
		private nextBt: JQuery;
		private nLb: JQuery;
		private pageTb: JQuery;

		//Trang hiện tại đang được hiển thị ở pageTb
		private index: number;

		//Chỉ số max của số trang
		private max: number;

		//Thay đổi chỉ số trang
		public setIndex(index: number): void
		{
			if (index > this.max || index < 1) console.error("Chỉ số index sai");
			this.index = index;
			this.refresh();
		
		}

		public getIndex() :number
		{
			return this.index;
		}

		private refresh(): void
		{
			this.prevBt.removeClass('hide');
			this.nextBt.removeClass('hide');
		
			if (this.index == 1) this.prevBt.addClass('hide');
			if (this.index == this.max) this.nextBt.addClass('hide');
		}

		public setMax(max: number): void
		{
			this.max = max;
			this.refresh();

		}

		public init(): void
		{
			this.prevBt = $('#paginationPrevBt');
			this.nextBt = $('#paginationNextBt');
			this.nLb = $('#paginationNLb');
			this.pageTb = $('#paginationPageTb');

			var thethis = this;
			//this.pageTb.change(function (data)
			//{
			//	thethis.setIndex(parseInt( thethis.pageTb.val()));

			//});

			this.onPrev.bind('click', function ()
			{
				thethis.setIndex(thethis.index--);
			});

			this.onNext.bind('click', function ()
			{
				thethis.setIndex(thethis.index++);
			});

		}

	}

}
